package com.ccjq.jq173.shopping.dao;

import com.ccjq.jq173.shopping.po.ShoppingCart;

import java.util.List;
import java.util.Map;

public interface ShoppingCartDao {
    /**
     * 查询用户购物车列表
     * @param //userId用户Id
     * @return //返回用户购物车列表
     */
    List<ShoppingCart> queryByUserId(String userId);

    /**
     * 根据购物车ID获取信息
     * @return 返回指定购物车数据
     */
    ShoppingCart queryByCartId(String shoppingCartId);

    /**
     * 修改购物车
     * @param quantity 数量
     * @param productId 商品Id
     * @param userId 用户Id
     * @return 成功1，失败0
     */
    int saveShoppingCart(int quantity,String productId,String userId);

    /**
     * 删除购物车
     * @param productId 数量
     * @param shoppingCartId 购物车Id
     * @param userId 用户Id
     *               成功1 失败0
     */
    int  updatShoppingCart(String shoppingCartId,String productId,String userId);

    /**
     * 更新结算后库存表
     * @param productId 商品ID
     * @param quantity 销售数量
     * @return
     */
    int updateStock(String productId,int quantity);

    /**
     * 往订单商品表加 结算后的数据
     * @param orderId 订单ID
     * @param list 购物车 数据 集合
     */
    void updateT_ORDER_PRODUCT(String orderId,List<ShoppingCart> list );
    /**
     *添加数据到购物车表
     * @param quantity 销售数量
     * @param shoppingCarId 购物车Id
     * @param userId 用户ID
     * @param productId 商品Id
     */
    int saveShoppingCart(int quantity, String shoppingCarId, String userId,String productId);

    /**
     * 结算模板方法
     * @param params 参数列表
     * @return 成功1 失败0
     */
    int settleAccounts(Map<String,Object> params);
}
